/*
using MyGeneration/Template/NHibernate (c) by lujan99@usa.net
*/
using System;
using System.Collections;
using System.Collections.Generic;

namespace OpenGado.DATA.Entities
{
	/// <summary>
	/// IssueItemHeader object for NHibernate mapped table 'issue_item_header'.
	/// </summary>
	[Serializable]
	public class IssueItemHeader
	{
		#region Member Variables
		protected int _issueitemheaderid;
		protected DateTime? _issuedate;
		protected string _issueto;
		protected DateTime? _issuestamp;
		protected string _issuecomment;
		protected string _requestnumber;
		protected Project _project;
		protected DateTime? _requestdate;
		protected string _authorizationstatus;
		protected string _requeststatus;
		protected string _requestcomment;
		protected Authorizations _authorizations;
		protected string _requestby;
		protected IList<IssueItem> _issueitem;
		protected IList<RequestItem> _requestitem;
		#endregion
		#region Constructors
			
		public IssueItemHeader() {}
					
		public IssueItemHeader(int issueitemheaderid, DateTime? issuedate, string issueto, DateTime? issuestamp, string issuecomment, string requestnumber, DateTime? requestdate, string authorizationstatus, string requeststatus, string requestcomment, string requestby) 
		{
			this._issueitemheaderid= issueitemheaderid;
			this._issuedate= issuedate;
			this._issueto= issueto;
			this._issuestamp= issuestamp;
			this._issuecomment= issuecomment;
			this._requestnumber= requestnumber;
			this._requestdate= requestdate;
			this._authorizationstatus= authorizationstatus;
			this._requeststatus= requeststatus;
			this._requestcomment= requestcomment;
			this._requestby= requestby;
		}

		public IssueItemHeader(int issueitemheaderid)
		{
			this._issueitemheaderid= issueitemheaderid;
		}
		
		#endregion
		#region Public Properties
		public int IssueItemHeaderId
		{
			get { return _issueitemheaderid; }
			set {_issueitemheaderid= value; }
		}
		public DateTime? IssueDate
		{
			get { return _issuedate; }
			set {_issuedate= value; }
		}
		public string IssueTo
		{
			get { return _issueto; }
			set {_issueto= value; }
		}
		public DateTime? IssueStamp
		{
			get { return _issuestamp; }
			set {_issuestamp= value; }
		}
		public string IssueComment
		{
			get { return _issuecomment; }
			set {_issuecomment= value; }
		}
		public string RequestNumber
		{
			get { return _requestnumber; }
			set {_requestnumber= value; }
		}
		public Project Project
		{
			get { return _project; }
			set {_project= value; }
		}
		public DateTime? RequestDate
		{
			get { return _requestdate; }
			set {_requestdate= value; }
		}
		public string AuthorizationStatus
		{
			get { return _authorizationstatus; }
			set {_authorizationstatus= value; }
		}
		public string RequestStatus
		{
			get { return _requeststatus; }
			set {_requeststatus= value; }
		}
		public string RequestComment
		{
			get { return _requestcomment; }
			set {_requestcomment= value; }
		}
		public Authorizations Authorizations
		{
			get { return _authorizations; }
			set {_authorizations= value; }
		}
		public string RequestBy
		{
			get { return _requestby; }
			set {_requestby= value; }
		}
		public IList<IssueItem> IssueItem
		{
			get { return _issueitem; }
			set {_issueitem= value; }
		}
		public IList<RequestItem> RequestItem
		{
			get { return _requestitem; }
			set {_requestitem= value; }
		}
		#endregion
		
		#region Equals And HashCode Overrides
		/// <summary>
		/// local implementation of Equals based on unique value members
		/// </summary>
		public override bool Equals( object obj )
		{
			if( this == obj ) return true;
			if( ( obj == null ) || ( obj.GetType() != this.GetType() ) ) return false;
			IssueItemHeader castObj = (IssueItemHeader)obj;
			return ( castObj != null ) &&
			this._issueitemheaderid == castObj.IssueItemHeaderId;
		}
		/// <summary>
		/// local implementation of GetHashCode based on unique value members
		/// </summary>
		public override int GetHashCode()
		{
			int hash = 57;
			hash = 27 * hash * _issueitemheaderid.GetHashCode();
			return hash;
		}
		#endregion
		
	}
}
